"""
@Project ：Python 
@File    ：07-数据容器：set（集合）.py
@IDE     ：PyCharm 
@Author  ：DongCha
@Date    ：2023/11/8 0008 11:36 
"""

# 基本语法：
# {元素1, 元素2, 元素3}
# 定义集合变量
# 变量名称 = {元素1, 元素2, 元素3}
# 定义空集合
# 变量名称 = set()
# 特点：
# 1.可以容纳多个数据
# 2.可以容纳不同类型的数据
# 3.数据是无序存储的
# 4.不允许重复数据存在
# 5.可以修改（增加/删除元素）
# 6.支持for循环

# 集合是无序的，所以不支持下标索引访问，但是允许修改
# 添加新元素 .add()
set_1 = {"aaa", "bbb", "ccc"}
set_1.add("ddd")
print(set_1)

# 移除元素 .remove()
set_1.remove("ddd")
print(set_1)

# 随机取出一个元素 .pop() 会得到一个元素，同时集合本身被修改，元素被移除
print(set_1.pop())

# 清空集合 .clear() 集合本身被清空
set_2 = set_1
set_2.clear()
print(set_2)

# 取两个集合的差集 .difference() 取出集合1和集合2的差集（1有2没有），得到一个新集合，原集合不变
print(set_1.difference(set_2))

# 消除两个集合的交集 .difference_update() 删除集合1中和集合2相同的元素，集合1被修改，集合2不变
set_1.difference_update(set_2)
print(set_1)
print(set_2)

# 取两个集合的和 .unior() 得到新集合，集合1和集合2不变
print(set_1.union(set_2))

# 统计集合元素的数量
print(len(set_2))

# 集合的遍历
for i in set_2:
    print(i)

# 有如下列表对象：['黑马程序员', '传智播客', '黑马程序员', '传智播客', 'itheima', 'itcast', 'itheima', 'itcast', 'best']
# 1.定义一个空集合
set_a = set()
list_a = ['黑马程序员', '传智播客', '黑马程序员', '传智播客', 'itheima', 'itcast', 'itheima', 'itcast', 'best']
# 2.通过for循环遍历列表
for i in list_a:
    # 3.在for循环中将列表的元素添加至集合
    set_a.add(i)
# 4.最终得到元素去重后的集合对象，并打印输出
print(set_a)
